"""
练习1：设计一个函数：foo()
    可能产生异常：

设计一个函数：test1():
    尝试调用foo()

主函数中：调用test1()
    对异常进行处理：try。。except


练习2：针对于以上情况
    foo()中，异常进行处理。。
"""


def foo():
    try:
        print(10 / 's')
    except Exception as  e:
        print(e.args)


def test1():
    foo()


# try:
#     test1()
# except Exception as e:
#     print(e.args)
# 调用一次 就要 try 一次

test1()
test1()
test1()

"""
异常：
    程序执行过程中，不正常：python解释器创建了这种类型异常的对象：
        异常 的对象。

异常类型：class
Exception
ValueError
。。

抛出异常：raise
    程序中主动抛出一个异常对象。

    需求：接收用户输入的密码，长度至少为8。否则抛异常
1.接收用户输入
2.密码判断长度
3.少于8，主动抛出一个异常对象
    创建对象
"""

# pwd = input('请输入密码,长度大于8位')
#
# if len(pwd) < 8:
#     raise Exception('密码长度不够...')
# else:
#     print('密码可以....')

"""
自己定义异常：自己定义一个类，继承Exception。具有了异常类的功能
    异常类：产生的对象，异常对象，能够通过raise关键字抛出，并且打断程序的执行

异常类：Exception

普通类：Person

自定义类：

"""


# 定义一个函数，接收用户的密码，密码长度小于10，抛出异常：要求的长度，接收的数据的长度
# 1.定义异常类

class HHH(Exception):
    pass


raise HHH()
